package paq_negocio;

import com.sun.rowset.CachedRowSetImpl;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.Stateless;
import paq_clase_interfaz.interfaz_pantallas_por_tipo_usuario;
import paq_entidades.enti_pantalla;
import paq_entidades.enti_pantallas_por_tipo_usuario;
import paq_entidades.enti_tipo_usuario;
import paq_entidades.enti_usuario;
import paq_entidades.enti_variables;
import paq_sentencias.Ejecutarsql;

@Stateless
public class neg_pantalla_por_tipo_usuario implements interfaz_pantallas_por_tipo_usuario {
    
    enti_variables v = new enti_variables();
    enti_pantallas_por_tipo_usuario entidad = new enti_pantallas_por_tipo_usuario();
    enti_tipo_usuario tu = new enti_tipo_usuario();
    enti_usuario u = new enti_usuario();
    enti_pantalla p = new enti_pantalla();
    Ejecutarsql ejec = new Ejecutarsql();
    
    public List<enti_pantallas_por_tipo_usuario> listarTodos() {
        return this.listarTodos();
    }
    
    @Override
    public void insertar(String p_codigo, String tu_codigo) {
        p.setP_codigo(p_codigo);
        tu.setTu_codigo(tu_codigo);
        
        String sql = "insert into Pantallas_por_usuario (ppu_codigo,p_codigo,tu_codigo) values(concat('ppu',ppu.NextVal),'" + p.getP_codigo() + "','" + tu.getTu_codigo() + "')";
        ejec.ejecutar2(sql);
        v.msm = ejec.getMen();
    }
    
    @Override
    public void eliminar(String al_codigo) {
        entidad.setPpu_codigo(al_codigo);
        String sql = "delete from Pantallas_por_usuario where ppu_codigo='" + entidad.getPpu_codigo() + "'";
        ejec.ejecutar2(sql);
        v.msm = ejec.getMen();
    }
    
    @Override
    public void actualizar(String ppu_codigo, String p_codigo, String tu_codigo) {
        entidad.setPpu_codigo(ppu_codigo);
        p.setP_codigo(p_codigo);
        tu.setTu_codigo(tu_codigo);
        String sql = "update Pantallas_por_usuario set p_codigo='" + p.getP_codigo() + "', tu_codigo='" + tu.getTu_codigo() + "' where ppu_codigo='" + entidad.getPpu_codigo() + "'";
        ejec.ejecutar2(sql);
        v.msm = ejec.getMen();
    }
    
    @Override
    public CachedRowSetImpl getLista() {
        try {
            v.crs = (CachedRowSetImpl) ejec.rellena2("select ppu.PPU_CODIGO,ppu.P_CODIGO,ppu.TU_CODIGO,p.P_NOMBRE,tu.TU_NOMBRE from PANTALLAS_POR_USUARIO ppu,PANTALLA p,TIPO_USUARIO tu where ppu.P_CODIGO=p.P_CODIGO and ppu.TU_CODIGO=tu.TU_CODIGO order by ppu_codigo desc");
        } catch (Exception ex) {
            Logger.getLogger(neg_pantalla_por_tipo_usuario.class.getName()).log(Level.SEVERE, null, ex);
        }
        return v.crs;
    }
    
    @Override
    public CachedRowSetImpl getListacomboinformacion() {
        try {
            v.crs = (CachedRowSetImpl) ejec.rellena2("select * from Pantallas_por_usuario");
        } catch (Exception ex) {
            Logger.getLogger(neg_pantalla_por_tipo_usuario.class.getName()).log(Level.SEVERE, null, ex);
        }
        return v.crs;
    }
    
    @Override
    public String getmensajei() {
        String sdr = "";
        sdr = v.msm;
        return sdr;
    }
    
    @Override
    public boolean verificarPermiso(String username, String url) {
        try {
            v.crs2 = (CachedRowSetImpl) ejec.rellena2("select pu.PPU_CODIGO from BASE3.PANTALLAS_POR_USUARIO pu join BASE3.PANTALLA pt on pt.P_CODIGO=pu.P_CODIGO join BASE3.TIPO_USUARIO t on t.TU_CODIGO=pu.TU_CODIGO join BASE3.USUARIO u on u.TU_CODIGO=t.TU_CODIGO where pt.P_URL='" + url + "' and u.U_NICK='" + username + "'");
        } catch (Exception ex) {
            Logger.getLogger(neg_pantalla_por_tipo_usuario.class.getName()).log(Level.SEVERE, null, ex);
        }
        System.out.println(v.crs2);
        
        try {
            System.out.println("paso el tamaño" + v.crs2.size());
            if (v.crs2.size() > 0) {
                return true;
            } else {
                return false;
            }
        } catch (Exception ex) {
            
            System.out.println(ex.getMessage());
            return true;
        }
        
    }
    
    @Override
    public void actualizarClave(String password, String res, String nick) {
        u.setU_pregunta(res);
        u.setU_nick(nick);
        u.setU_password(password);
        String sql = "update Usuario set u_password='" + u.getU_password() + "',u_pregunta='" + u.getU_pregunta() + "' where u_nick='" + u.getU_nick() + "'";
        ejec.ejecutar2(sql);
        v.msm = ejec.getMen();
    }
    
    @Override
    public boolean verificarPermisoCoordinador(String cedula) {
        try {
            v.crs2 = (CachedRowSetImpl) ejec.rellena2("select cp.PR_CEDULA from BASE3.COORDINADOR_PROGRAMA cp join BASE3.PROFESOR p on p.PR_CEDULA=cp.PR_CEDULA where cp.PR_CEDULA='" + cedula + "'");
        } catch (Exception ex) {
            Logger.getLogger(neg_pantalla_por_tipo_usuario.class.getName()).log(Level.SEVERE, null, ex);
        }
        System.out.println(v.crs2);
        
        try {
            System.out.println("paso el tamaño" + v.crs2.size());
            if (v.crs2.size() > 0) {
                return true;
            } else {
                return false;
            }
        } catch (Exception ex) {
            
            System.out.println(ex.getMessage());
            return true;
        }
        
    }
}
